package com.qdlc.p2p.biz.service;

import java.util.List;

import com.qdlc.p2p.biz.service.activity.ActivityPlanException;
import com.qdlc.p2p.dal.common.model.jpa.PageDataList;
import com.qdlc.p2p.dal.dto.AdditionalUserCard;
import com.qdlc.p2p.dal.dto.User;
import com.qdlc.p2p.dal.model.AdditionalUserCardModel;

/**
 * 功能描述: 用户卡片 
 * @author linya
 * @date 2016-5-6
 */
public interface AdditionalUserCardService {

	/**
	 * 给用户送卡片
	 *
	 * @param user
	 * @param cardType
	 * @throws ActivityPlanException
	 * @author linya
	 */
	 void giveCard(User user, int cardType);

	/**
	 * 给用户送卡片
	 * @param userCard
	 */
	void save(AdditionalUserCard userCard);
	
	/**
	 * 使用户卡片信息变成无效
	 *
	 * @return
	 * @author Kaiju Zhao
	 */
	int updateUserCardInvalid(long id);
	
	/**
	 * 使用用户卡片（兑换时使用）
	 * @param userId
	 * @param cardIds
	 * @return
	 */
	int useUserCard(long userId, long[] cardIds);
	
	/**
	 * 根据IDs查询用户卡片
	 * @param cardIds
	 * @return
	 * @author linya
	 */
	List<AdditionalUserCard> findUserCards(long userId, long[] cardIds);
	
	/**
	 * 查询能使用的用户卡片信息列表
	 *
	 * @return
	 * @author Kaiju Zhao
	 */
	List<AdditionalUserCardModel> findUsableUserCardList();

	/**
	 * 分页获取用户卡片信息列表
	 *
	 * @param model
	 * @return
	 * @author Kaiju Zhao
	 */
	PageDataList<AdditionalUserCardModel> list(AdditionalUserCardModel model);

}
